﻿// 4691. YYF老师.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>

/*
https://www.acwing.com/problem/content/4694/


YYF老师教学生们英语语法。

所有英文单词可以分为七种类型，分别是名词、代词、形容词、副词、介词、冠词和动词。

动词又分为及物动词和不及物动词。

它们的英文缩写对照如下：

类型        缩写
名词        n.
代词        pron.
形容词      adj.
副词        adv.
介词        prep.
冠词        art.
及物动词    vt.
不及物动词  vi.
注意，如果一个词被标注为 v.，那表明它既可以用作及物动词也可以用作不及物动词。

句子的结构分为两种：

主语+不及物动词
主语+及物动词+宾语
名词和代词可以用作主语或宾语。

在使用一个名词时，应当在其前面放置一个冠词。

一个形容词可以用来修饰一个名词，一个副词可以用来修饰一个动词。

当一个形容词被用来修饰一个名词时，应当将其放置在冠词和名词之间。

当一个副词被用来修饰一个动词时，应当将其放置在动词之前。

一个介词短语可以放置在：

主语之前
主语和动词之间
不及物动词之后
动词和宾语之间
宾语之后
一个介词短语由一个介词和一个名词/代词组成。

在一个句子中，最多只能包含一个介词短语。

句子的任何两个部分都不能相交。

例如，He is a good student 语法正确，He a good is student 语法错误。

给定的所有单词都保证只属于一种类型。

所有单词不区分大小写（每个单词在给出时，都保持小写，但是在句子中有可能首字母大写）。

不要求主谓保持一致。

请你判断，所有的给定句子哪些语法正确，哪些语法错误。

. 表示句子结束，, 什么也不表示，忽略即可。

输入格式
第一行包含两个整数 N
 和 M
，表示一共有 N
 个给定单词和 M
 个待判断句子。

接下来 N
 行，每行包含一个单词以及它的类型描述。

最后 M
 行，每行包含一个句子，每个句子最多包含 20
 个单词。

保证在所有句子中出现的所有单词都是在输入中给出的。

输出格式
每个句子输出一行判断结果，如果语法正确，则输出 YES，否则输出 NO。

数据范围
1≤N,M≤5000
，
单词长度范围 [1,20]
。

输入样例：
10 6
he pron.
see vt.
a art.
baby n.
at prep.
the art.
airport n.
happy adj.
guess v.
immediately adv.
He guess.
He see baby.
Happy he see a baby.
He immediately see a baby.
He see a baby immediately.
At the airport, he see a happy baby.
输出样例：
YES
NO
NO
YES
NO
YES
*/

int main()
{
    std::cout << "Hello World!\n";
}

 